package sanmubird.club.mock.minenv;

import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.Mockito;
import org.mockito.junit.MockitoJUnitRunner;
import sanmubird.club.mock.service.MockRemoteInvokeService;

/**
 * @author sam
 * @date 2019/12/8 11:44
 * @description 功能描述
 */

// 要在測試執行期間啟用Mockito註釋，必須調用 MockitoAnnotations.initMocks(this) static 方法。或者 使用 @RunWith(MockitoJUnitRunner.class)
@RunWith(MockitoJUnitRunner.class)
public class MockAnnotationTest2 {

	@Mock
	MockRemoteInvokeService mockRemoteInvokeService;

	@Test
	public void givenCountMethodMocked_WhenCountInvoked_ThenMockedValueReturned() {

		//指定mock对象的行为
		Mockito.when(mockRemoteInvokeService.remoteInvoke()).thenReturn("remote");

		//调用mock对象
		final String s = mockRemoteInvokeService.remoteInvoke();

		Assert.assertEquals(s, "remote");

		//验证 remoteInvoke 的方法被调用
		Mockito.verify(mockRemoteInvokeService).remoteInvoke();
	}

}
